Modern textual editors for general programming languages, such as Eclipse for Java, provide advanced features such as semantic content completion and semantic constraint checking, for the sake of user convenience and productivity. These convenience features are only available because the editor is tightly integrated with the compiler of the programming language. The compiler performs semantic analysis on a given user program and provides necessary information such as names and types of the variables to the editor.
For the case of a database query language, such as structured query language (SQL) or SPARQL, it is difficult for the editors to provide such features, because the required information is not present in the query being edited. With SQL this deficiency is lessened for a query on a relational database system, because the necessary information, such as column names and types of tables, is defined in a self-contained and standalone schema that exists as a first class object outside of the query and outside of a dataset being queried. However, graph databases and tuple databases do not have such a self-contained and standalone schema. This deficiency prevents exploitation of semantic analysis for graph and tuple databases based on traditional techniques.